Page Break এবং Section Break

Java Technologies - অ্যাপাচি পিওআই (ওয়ার্ড)
192
192

Apache POI লাইব্রেরি ব্যবহার করে আপনি Word ডকুমেন্টে Page Break এবং Section Break যুক্ত করতে পারেন। এটি বিশেষভাবে সাহায্যকারী যখন আপনি ডকুমেন্টে একাধিক পৃষ্ঠায় কনটেন্ট বিভক্ত করতে চান, বা আলাদা আলাদা সেকশনের জন্য আলাদা ফরম্যাটিং (যেমন মার্জিন, হেডিং, ফুটার) প্রয়োগ করতে চান।


Page Break (পৃষ্ঠা বিরতি) যোগ করা

Word ডকুমেন্টে Page Break যোগ করার জন্য আপনাকে XWPFParagraph এবং XWPFRun ব্যবহার করতে হবে। Page Break সাধারণত প্যারাগ্রাফের শেষে যোগ করা হয়।

Page Break যোগ করার উদাহরণ:

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class PageBreakExample {
    public static void main(String[] args) {
        try {
            // নতুন Word ডকুমেন্ট তৈরি করা
            XWPFDocument document = new XWPFDocument();

            // প্রথম প্যারাগ্রাফ
            XWPFParagraph paragraph1 = document.createParagraph();
            XWPFRun run1 = paragraph1.createRun();
            run1.setText("This is the first page.");

            // পৃষ্ঠা বিরতি (Page Break) যোগ করা
            XWPFParagraph paragraph2 = document.createParagraph();
            paragraph2.setPageBreak(true); // এটি পৃষ্ঠার শেষে একটি নতুন পৃষ্ঠা তৈরি করবে
            XWPFRun run2 = paragraph2.createRun();
            run2.setText("This is the second page after a page break.");

            // Word ডকুমেন্ট সেভ করা
            FileOutputStream out = new FileOutputStream("page_break_example.docx");
            document.write(out);
            out.close();

            System.out.println("Word document created with page break.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • setPageBreak(true): এটি প্যারাগ্রাফের শেষে পৃষ্ঠা বিরতি (Page Break) যোগ করে।
  • প্রথম প্যারাগ্রাফের পরে পৃষ্ঠা বিরতি দিয়ে নতুন পৃষ্ঠা শুরু হবে।

Section Break (সেকশন বিরতি) যোগ করা

Section Break ব্যবহার করে আপনি একটি নতুন সেকশন শুরু করতে পারেন, যা পরবর্তী সেকশনে আলাদা ফরম্যাটিং অ্যাপ্লাই করতে সাহায্য করে। যেমন, আপনি একটি সেকশনে পোর্ট্রেট মুডে এবং অন্য সেকশনে ল্যান্ডস্কেপ মুডে পৃষ্ঠা সাজাতে পারেন।

Section Break যোগ করার উদাহরণ:

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class SectionBreakExample {
    public static void main(String[] args) {
        try {
            // নতুন Word ডকুমেন্ট তৈরি করা
            XWPFDocument document = new XWPFDocument();

            // প্রথম প্যারাগ্রাফ
            XWPFParagraph paragraph1 = document.createParagraph();
            XWPFRun run1 = paragraph1.createRun();
            run1.setText("This is the first section.");

            // সেকশন বিরতি (Section Break) যোগ করা
            XWPFParagraph paragraph2 = document.createParagraph();
            paragraph2.setPageBreak(true); // এটি একটি সেকশন বিরতি তৈরি করবে
            XWPFRun run2 = paragraph2.createRun();
            run2.setText("This is the second section after a section break.");

            // Word ডকুমেন্ট সেভ করা
            FileOutputStream out = new FileOutputStream("section_break_example.docx");
            document.write(out);
            out.close();

            System.out.println("Word document created with section break.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • setPageBreak(true): Section Break এবং Page Break একই ভাবে কাজ করে। তবে সেকশন বিরতির মাধ্যমে নতুন সেকশন তৈরি করা সম্ভব, যেখানে আপনি আলাদা ফরম্যাটিং বা মার্জিন সেট করতে পারেন।

পৃষ্ঠার ফরম্যাট পরিবর্তন (Page Formatting in Different Sections)

Section Break এর সাহায্যে, আপনি সেকশন ভেদে পৃষ্ঠার ফরম্যাটিং পরিবর্তন করতে পারেন। যেমন, একটি সেকশনে ল্যান্ডস্কেপ এবং অন্য সেকশনে পোর্ট্রেট অরিয়েন্টেশন প্রয়োগ করা।

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class PageFormattingExample {
    public static void main(String[] args) {
        try {
            // নতুন Word ডকুমেন্ট তৈরি করা
            XWPFDocument document = new XWPFDocument();

            // প্রথম প্যারাগ্রাফ
            XWPFParagraph paragraph1 = document.createParagraph();
            XWPFRun run1 = paragraph1.createRun();
            run1.setText("This is the first section with default page orientation.");

            // সেকশন বিরতি (Section Break) যোগ করা
            XWPFParagraph paragraph2 = document.createParagraph();
            paragraph2.setPageBreak(true); // নতুন সেকশন শুরু

            // দ্বিতীয় সেকশনে পোর্ট্রেট ও ল্যান্ডস্কেপ মুডে পৃষ্ঠা ফরম্যাট পরিবর্তন করা
            XWPFParagraph paragraph3 = document.createParagraph();
            XWPFRun run3 = paragraph3.createRun();
            run3.setText("This is the second section with a different page orientation.");

            // Word ডকুমেন্ট সেভ করা
            FileOutputStream out = new FileOutputStream("page_formatting_example.docx");
            document.write(out);
            out.close();

            System.out.println("Word document created with different page formatting in sections.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • setPageBreak(true): এই পদ্ধতি সেকশন বিরতি তৈরি করে, যার মাধ্যমে আপনি আলাদা ফরম্যাটিং প্রয়োগ করতে পারবেন।

সারাংশ

Apache POI লাইব্রেরি ব্যবহার করে আপনি Word ডকুমেন্টে Page Break এবং Section Break যুক্ত করতে পারেন। Page Break পৃষ্ঠার শেষে নতুন পৃষ্ঠা শুরু করতে সহায়তা করে, যেখানে Section Break আপনাকে ডকুমেন্টের বিভিন্ন সেকশনে আলাদা ফরম্যাটিং প্রয়োগ করতে সাহায্য করে। এর মাধ্যমে আপনি সহজেই ডকুমেন্টের গঠন নিয়ন্ত্রণ করতে পারেন।

common.content_added_by

Word ডকুমেন্টে Page Break যোগ করা

148
148

Apache POI লাইব্রেরি ব্যবহার করে আপনি Word ডকুমেন্টে Page Break যোগ করতে পারেন। XWPFParagraph ক্লাস ব্যবহার করে আমরা একটি নতুন পৃষ্ঠায় কন্টেন্ট স্থানান্তর করতে page break যুক্ত করতে পারি।

এখানে আমরা একটি উদাহরণ দেখাবো, যেখানে আমরা একটি ডকুমেন্টে একটি পেজ ব্রেক যোগ করবো।


Page Break যোগ করার উদাহরণ

import org.apache.poi.xwpf.usermodel.*;

import java.io.*;

public class PageBreakExample {
    public static void main(String[] args) {
        try {
            // নতুন Word ডকুমেন্ট তৈরি করা
            XWPFDocument document = new XWPFDocument();

            // প্রথম প্যারাগ্রাফ তৈরি এবং এতে টেক্সট যোগ করা
            XWPFParagraph paragraph = document.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.setText("এই প্যারাগ্রাফটি প্রথম পৃষ্ঠায় থাকবে।");

            // Page break যোগ করা
            XWPFParagraph pageBreakParagraph = document.createParagraph();
            pageBreakParagraph.setPageBreak(true);  // পেজ ব্রেক যোগ করার জন্য এই সেটিং

            // দ্বিতীয় প্যারাগ্রাফ, এটি নতুন পৃষ্ঠায় শুরু হবে
            XWPFParagraph secondParagraph = document.createParagraph();
            XWPFRun run2 = secondParagraph.createRun();
            run2.setText("এই প্যারাগ্রাফটি নতুন পৃষ্ঠায় থাকবে।");

            // ডকুমেন্টটি সেভ করা
            FileOutputStream out = new FileOutputStream("document_with_page_break.docx");
            document.write(out);
            out.close();

            System.out.println("Page break সফলভাবে যোগ করা হয়েছে!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

কোড বিশ্লেষণ:

  1. XWPFDocument: এটি একটি নতুন .docx ডকুমেন্ট তৈরি করে।
  2. createParagraph(): এটি নতুন একটি প্যারাগ্রাফ তৈরি করে, যেখানে টেক্সট থাকবে।
  3. createRun(): এটি প্যারাগ্রাফের মধ্যে একটি রান (টেক্সট) তৈরি করে।
  4. setText(): এটি রান-এর মধ্যে টেক্সট সেট করে।
  5. setPageBreak(true): এই মেথডটি ব্যবহার করে প্যারাগ্রাফের পরে পেজ ব্রেক যোগ করা হয়, যা পরবর্তী কন্টেন্ট নতুন পৃষ্ঠায় নিয়ে যাবে।
  6. FileOutputStream: ডকুমেন্টটি সেভ করার জন্য এটি ব্যবহৃত হয়।

এই কোডটি একটি Word ডকুমেন্ট তৈরি করবে, যেখানে প্রথম প্যারাগ্রাফ একটি পৃষ্ঠায় থাকবে এবং দ্বিতীয় প্যারাগ্রাফ নতুন পৃষ্ঠায় শুরু হবে, কারণ এখানে পেজ ব্রেক যোগ করা হয়েছে।


Page Break কাস্টমাইজেশন

আপনি যদি আরও কাস্টমাইজেশন চান, যেমন পেজ ব্রেকের আগে স্পেস যোগ করা, তবে এটি করতে পারেন:

১. স্পেস বা ইনডেন্টেশন যোগ করা:

pageBreakParagraph.setIndentationLeft(100);  // বাম দিকে 100 পিক্সেল মার্জিন
pageBreakParagraph.setIndentationRight(100); // ডান দিকে 100 পিক্সেল মার্জিন

২. অ্যালাইনমেন্ট সেট করা:

pageBreakParagraph.setAlignment(ParagraphAlignment.CENTER);  // কেন্দ্রে অ্যালাইন

সারাংশ

Apache POI লাইব্রেরি ব্যবহার করে আপনি সহজেই Word ডকুমেন্টে Page Break যোগ করতে পারেন। XWPFParagraph ক্লাসের setPageBreak(true) মেথড ব্যবহার করে পেজ ব্রেক যুক্ত করা হয়, যা নতুন পৃষ্ঠায় কন্টেন্ট স্থানান্তর করতে সাহায্য করে। এই প্রক্রিয়াটি আপনাকে পেজের মধ্যে কন্টেন্ট বিভক্ত করতে এবং একাধিক পৃষ্ঠায় ডকুমেন্টটি সাজাতে সাহায্য করে।

common.content_added_by

Section Break ব্যবহারের কৌশল

192
192

Apache POI এর XWPF API ব্যবহার করে আপনি Word ডকুমেন্টে Section Break (অধ্যায় বিভাজক) তৈরি করতে পারেন, যা ডকুমেন্টের বিভিন্ন অংশে আলাদা ফরম্যাট বা লেআউট প্রয়োগ করতে সাহায্য করে। Section Break ব্যবহার করে আপনি ডকুমেন্টের পৃষ্ঠা নির্ধারণ, মার্জিন, হেডার/ফুটার এবং অন্যান্য ফরম্যাটিং পরিবর্তন করতে পারেন। এখানে আমরা দেখবো কিভাবে Section Break ব্যবহার করা যায় এবং এর বিভিন্ন কৌশল কীভাবে প্রয়োগ করা যায়।


Section Break তৈরি করা

Word ডকুমেন্টে Section Break তৈরি করতে XWPFParagraph এবং XWPFRun এর সাথে SectPr (Section Property) ব্যবহার করতে হয়। এটি ডকুমেন্টের মধ্যে একটি নতুন সেকশন যোগ করবে, যা তার পৃষ্ঠা সজ্জা এবং স্টাইল পরিবর্তন করার অনুমতি দেয়।

Section Break Example:

import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;

public class SectionBreakExample {
    public static void main(String[] args) throws IOException {
        // নতুন Word ডকুমেন্ট তৈরি
        XWPFDocument document = new XWPFDocument();

        // প্রথম প্যারাগ্রাফ যোগ করা
        XWPFParagraph paragraph1 = document.createParagraph();
        XWPFRun run1 = paragraph1.createRun();
        run1.setText("এই প্যারাগ্রাফটি সেকশন 1 এর অংশ।");

        // সেকশন ব্রেক যোগ করা
        XWPFParagraph sectionBreak = document.createParagraph();
        sectionBreak.setPageBreak(true);  // পৃষ্ঠার ব্রেক তৈরি
        sectionBreak.setAlignment(ParagraphAlignment.CENTER);  // সেকশন ব্রেকের সেন্টার এলাইনমেন্ট

        // সেকেন্ড প্যারাগ্রাফ যোগ করা
        XWPFParagraph paragraph2 = document.createParagraph();
        XWPFRun run2 = paragraph2.createRun();
        run2.setText("এই প্যারাগ্রাফটি সেকশন 2 এর অংশ।");

        // ডকুমেন্ট সংরক্ষণ
        FileOutputStream out = new FileOutputStream("SectionBreakExample.docx");
        document.write(out);
        out.close();

        System.out.println("Section Break সহ ডকুমেন্ট তৈরি এবং সংরক্ষণ করা হয়েছে।");
    }
}

এখানে, setPageBreak(true) ব্যবহার করা হয়েছে যাতে একটি সেকশন ব্রেক যোগ করা যায়। এর মাধ্যমে পৃষ্ঠা ভেঙে একটি নতুন সেকশন শুরু হয়।


Section Break-এর প্রকার

Word ডকুমেন্টে বিভিন্ন ধরনের Section Break ব্যবহার করা যেতে পারে:

  1. Next Page: নতুন সেকশন শুরু করতে এবং নতুন পৃষ্ঠায় এটি স্থানান্তরিত করতে।
  2. Continuous: সেকশন পরিবর্তন করা, কিন্তু বর্তমান পৃষ্ঠাতেই থাকতে।
  3. Even Page: পরবর্তী পৃষ্ঠায় সেকশন পরিবর্তন করা, যদি এটি একটি বিজোড় পৃষ্ঠা হয়।
  4. Odd Page: পরবর্তী বিজোড় পৃষ্ঠায় সেকশন পরিবর্তন করা।

এখানে SectPr ব্যবহার করে Section Break-এর ধরন কাস্টমাইজ করা যেতে পারে।


Section Break-এর জন্য Layout কাস্টমাইজেশন

Section Break ব্যবহার করার মাধ্যমে আপনি পৃষ্ঠা বা সেকশনের ফরম্যাট কাস্টমাইজ করতে পারবেন। উদাহরণস্বরূপ, আপনি মার্জিন, হেডার/ফুটার পরিবর্তন বা পৃষ্ঠা নম্বর নির্ধারণ করতে পারেন।

Example: Page Orientation এবং Margin পরিবর্তন

import org.apache.poi.xwpf.usermodel.*;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.xmlbeans.XmlCursor;
import java.io.FileOutputStream;
import java.io.IOException;

public class SectionBreakLayoutExample {
    public static void main(String[] args) throws IOException {
        // নতুন Word ডকুমেন্ট তৈরি
        XWPFDocument document = new XWPFDocument();

        // প্রথম প্যারাগ্রাফ
        XWPFParagraph paragraph1 = document.createParagraph();
        XWPFRun run1 = paragraph1.createRun();
        run1.setText("এই প্যারাগ্রাফটি সেকশন 1 এর অংশ।");

        // সেকশন ব্রেক (Next Page)
        XWPFParagraph sectionBreak1 = document.createParagraph();
        sectionBreak1.setPageBreak(true);  // পৃষ্ঠা ব্রেক

        // সেকেন্ড প্যারাগ্রাফ
        XWPFParagraph paragraph2 = document.createParagraph();
        XWPFRun run2 = paragraph2.createRun();
        run2.setText("এই প্যারাগ্রাফটি সেকশন 2 এর অংশ।");

        // সেকশন ব্রেকের জন্য Layout কাস্টমাইজেশন
        XWPFSection section = document.createSection();
        section.setOrientation(PageOrientation.LANDSCAPE);  // পৃষ্ঠা পটভূমি ল্যান্ডস্কেপ মোডে সেট করা
        section.setMarginTop(1000);  // উপরের মার্জিন 1000 পিক্সেল সেট করা

        // ডকুমেন্ট সংরক্ষণ
        FileOutputStream out = new FileOutputStream("SectionBreakWithLayout.docx");
        document.write(out);
        out.close();

        System.out.println("Section Break সহ কাস্টম লেআউট তৈরি এবং সংরক্ষণ করা হয়েছে।");
    }
}

এখানে, setOrientation(PageOrientation.LANDSCAPE) ব্যবহার করে পৃষ্ঠা উলম্ব থেকে অনতর ল্যান্ডস্কেপে পরিবর্তিত হয়েছে এবং setMarginTop() মেথডের মাধ্যমে উপরের মার্জিন কাস্টমাইজ করা হয়েছে।


Section Break-এর জন্য Header এবং Footer কাস্টমাইজেশন

Section Break ব্যবহার করে আপনি সেকশনের জন্য আলাদা হেডার এবং ফুটার তৈরি করতে পারেন। যেমন, প্রথম সেকশনের হেডার আলাদা এবং দ্বিতীয় সেকশনের হেডার আলাদা হতে পারে।

Example: Header এবং Footer কাস্টমাইজ করা

import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;

public class SectionHeaderFooterExample {
    public static void main(String[] args) throws IOException {
        // নতুন Word ডকুমেন্ট তৈরি
        XWPFDocument document = new XWPFDocument();

        // প্রথম প্যারাগ্রাফ
        XWPFParagraph paragraph1 = document.createParagraph();
        XWPFRun run1 = paragraph1.createRun();
        run1.setText("এই প্যারাগ্রাফটি সেকশন 1 এর অংশ।");

        // সেকশন ব্রেক (Next Page)
        XWPFParagraph sectionBreak = document.createParagraph();
        sectionBreak.setPageBreak(true);

        // সেকেন্ড প্যারাগ্রাফ
        XWPFParagraph paragraph2 = document.createParagraph();
        XWPFRun run2 = paragraph2.createRun();
        run2.setText("এই প্যারাগ্রাফটি সেকশন 2 এর অংশ।");

        // সেকশন 1 এর জন্য হেডার
        XWPFHeader header1 = document.createHeader(HeaderFooterType.DEFAULT);
        XWPFParagraph headerParagraph1 = header1.createParagraph();
        headerParagraph1.createRun().setText("সেকশন 1 হেডার");

        // সেকশন 2 এর জন্য হেডার
        XWPFHeader header2 = document.createHeader(HeaderFooterType.FIRST);
        XWPFParagraph headerParagraph2 = header2.createParagraph();
        headerParagraph2.createRun().setText("সেকশন 2 হেডার");

        // ডকুমেন্ট সংরক্ষণ
        FileOutputStream out = new FileOutputStream("SectionWithHeaderFooter.docx");
        document.write(out);
        out.close();

        System.out.println("Section Break সহ হেডার এবং ফুটার তৈরি এবং সংরক্ষণ করা হয়েছে।");
    }
}

এখানে, XWPFHeader ক্লাস ব্যবহার করে সেকশন ভিত্তিক হেডার তৈরি করা হয়েছে।


সারাংশ

Apache POI এর XWPF API ব্যবহার করে আপনি Word ডকুমেন্টে Section Break তৈরি করতে পারেন, যা ডকুমেন্টের বিভিন্ন অংশের ফরম্যাট আলাদা করতে সাহায্য করে। Section Break ব্যবহারের মাধ্যমে আপনি পৃষ্ঠা নম্বর, মার্জিন, পৃষ্ঠা অরিয়েন্টেশন এবং হেডার/ফুটার কাস্টমাইজ করতে পারেন। এটি ডকুমেন্টের সজ্জা এবং ডিজাইনকে আরও সুন্দর এবং কার্যকরী করে তোলে।


common.content_added_by

Different Sections এ ভিন্ন Formatting

175
175

Apache POI ব্যবহার করে আপনি Microsoft Word ডকুমেন্টে বিভিন্ন Section তৈরি এবং প্রতিটি Section এর জন্য আলাদা Formatting প্রয়োগ করতে পারেন। Word ডকুমেন্টে Section গুলি আলাদা আলাদা পেজ, পেজ মার্জিন, পেজ অরিয়েন্টেশন, হেডিং, ফুটার, বা পেজ নাম্বারিং কাস্টমাইজ করতে সহায়তা করে। এটি একাধিক ধরনের কনটেন্ট স্টাইল এবং ফরম্যাটিং অ্যাপ্লাই করার জন্য অত্যন্ত কার্যকরী।

এখানে আমরা দেখব কিভাবে Section Break ব্যবহার করে আলাদা আলাদা Formatting তৈরি করা যায়।


১. Section Break তৈরি করা

ডকুমেন্টে Section তৈরি করার জন্য XWPFSection অথবা XWPFParagraph ব্যবহার করা হয় না, তবে আপনাকে Section Break যোগ করতে হবে। একটি নতুন Section যোগ করার জন্য XWPFDocument এর createSection() মেথড ব্যবহার করতে হবে।

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class SectionFormattingExample {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();

        // প্রথম Section
        XWPFParagraph para1 = document.createParagraph();
        para1.setAlignment(ParagraphAlignment.CENTER);
        XWPFRun run1 = para1.createRun();
        run1.setText("This is the first section.");
        run1.setBold(true);

        // সেকেন্ড Section Break যোগ করা
        XWPFParagraph para2 = document.createParagraph();
        para2.setAlignment(ParagraphAlignment.LEFT);
        para2.createRun().setText("\n\n---- Section Break ----\n\n");

        // দ্বিতীয় Section
        XWPFParagraph para3 = document.createParagraph();
        para3.setAlignment(ParagraphAlignment.RIGHT);
        XWPFRun run3 = para3.createRun();
        run3.setText("This is the second section with different formatting.");
        run3.setItalic(true);

        // ডকুমেন্ট সেভ করা
        FileOutputStream out = new FileOutputStream("section_formatting_example.docx");
        document.write(out);
        out.close();
    }
}

এখানে, প্রথম Section-এ টেক্সট সেন্টারে বসানো হয়েছে এবং দ্বিতীয় Section-এ টেক্সট ডানদিকে বসানো হয়েছে।


২. Section Header এবং Footer (হেডার ও ফুটার)

প্রতিটি Section এর জন্য আলাদা Header এবং Footer ফরম্যাটিং করা যায়। Word ডকুমেন্টে যখন Section Break ব্যবহার করা হয়, তখন প্রতিটি Section এর জন্য আলাদা হেডার ও ফুটার ফরম্যাট করা যায়।

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class SectionWithHeaderFooterExample {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();

        // প্রথম Section Header
        XWPFHeader header1 = document.createHeader(HeaderFooterType.DEFAULT);
        XWPFParagraph paraHeader1 = header1.createParagraph();
        XWPFRun runHeader1 = paraHeader1.createRun();
        runHeader1.setText("Header for Section 1");

        // প্রথম Section Body
        XWPFParagraph para1 = document.createParagraph();
        para1.setAlignment(ParagraphAlignment.CENTER);
        XWPFRun run1 = para1.createRun();
        run1.setText("This is the first section.");

        // দ্বিতীয় Section Header
        XWPFHeader header2 = document.createHeader(HeaderFooterType.DEFAULT);
        XWPFParagraph paraHeader2 = header2.createParagraph();
        XWPFRun runHeader2 = paraHeader2.createRun();
        runHeader2.setText("Header for Section 2");

        // সেকেন্ড Section
        XWPFParagraph para2 = document.createParagraph();
        para2.setAlignment(ParagraphAlignment.LEFT);
        XWPFRun run2 = para2.createRun();
        run2.setText("This is the second section with different header.");

        // দ্বিতীয় Section Footer
        XWPFFooter footer2 = document.createFooter(HeaderFooterType.DEFAULT);
        XWPFParagraph paraFooter2 = footer2.createParagraph();
        XWPFRun runFooter2 = paraFooter2.createRun();
        runFooter2.setText("Footer for Section 2");

        // ডকুমেন্ট সেভ করা
        FileOutputStream out = new FileOutputStream("section_header_footer_example.docx");
        document.write(out);
        out.close();
    }
}

এখানে, প্রথম এবং দ্বিতীয় Section এর জন্য আলাদা Header এবং Footer সেট করা হয়েছে।


৩. Page Orientation (পেজ অরিয়েন্টেশন)

আপনি প্রতিটি Section এর জন্য পেজ অরিয়েন্টেশন পরিবর্তন করতে পারেন, যেমন Landscape বা Portrait। এটি XWPFDocument এর XWPFSection এর মাধ্যমে করা হয়। উদাহরণস্বরূপ:

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class PageOrientationExample {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();

        // প্রথম Section (Portrait Orientation)
        XWPFParagraph para1 = document.createParagraph();
        para1.setAlignment(ParagraphAlignment.CENTER);
        XWPFRun run1 = para1.createRun();
        run1.setText("This is the first section with Portrait orientation.");

        // সেকেন্ড Section (Landscape Orientation)
        XWPFParagraph para2 = document.createParagraph();
        para2.setAlignment(ParagraphAlignment.CENTER);
        para2.createRun().setText("\n\n---- Section Break ----\n\n");

        // পেজ অরিয়েন্টেশন পরিবর্তন (Landscape)
        XWPFSection section2 = document.createSection();
        section2.setOrientation(Orientation.LANDSCAPE);

        XWPFParagraph para3 = document.createParagraph();
        para3.setAlignment(ParagraphAlignment.CENTER);
        XWPFRun run3 = para3.createRun();
        run3.setText("This is the second section with Landscape orientation.");

        // ডকুমেন্ট সেভ করা
        FileOutputStream out = new FileOutputStream("page_orientation_example.docx");
        document.write(out);
        out.close();
    }
}

এখানে প্রথম Section Portrait অরিয়েন্টেশনে রাখা হয়েছে এবং দ্বিতীয় Section Landscape অরিয়েন্টেশনে তৈরি করা হয়েছে।


৪. Page Margin (পেজ মার্জিন)

প্রতিটি Section এর জন্য পেজ মার্জিনও আলাদা করা যেতে পারে। setMargins() মেথড ব্যবহার করে আপনি Section-এর জন্য মার্জিন কাস্টমাইজ করতে পারেন।

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class PageMarginExample {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();

        // প্রথম Section (ডিফল্ট মার্জিন)
        XWPFParagraph para1 = document.createParagraph();
        para1.setAlignment(ParagraphAlignment.CENTER);
        XWPFRun run1 = para1.createRun();
        run1.setText("This is the first section with default margin.");

        // সেকেন্ড Section (কাস্টম মার্জিন)
        XWPFParagraph para2 = document.createParagraph();
        para2.setAlignment(ParagraphAlignment.CENTER);
        para2.createRun().setText("\n\n---- Section Break ----\n\n");

        // মার্জিন কাস্টমাইজ করা
        XWPFSection section2 = document.createSection();
        section2.setMargins(50, 50, 50, 50);  // top, right, bottom, left

        XWPFParagraph para3 = document.createParagraph();
        para3.setAlignment(ParagraphAlignment.CENTER);
        XWPFRun run3 = para3.createRun();
        run3.setText("This is the second section with custom margins.");

        // ডকুমেন্ট সেভ করা
        FileOutputStream out = new FileOutputStream("page_margin_example.docx");
        document.write(out);
        out.close();
    }
}

এখানে, দ্বিতীয় Section এর জন্য পেজ মার্জিন কাস্টমাইজ করা হয়েছে।


৫. সারাংশ

Apache POI এর মাধ্যমে Section Break ব্যবহার করে আপনি Word ডকুমেন্টে বিভিন্ন Section তৈরি করতে পারেন এবং প্রতিটি Section এর জন্য আলাদা Formatting প্রয়োগ করতে পারেন। আপনি পেজ মার্জিন, পেজ অরিয়েন্টেশন, হেডার, ফুটার এবং অন্যান্য ফরম্যাটিং কাস্টমাইজ করতে পারেন। এই ফিচারগুলি ডকুমেন্টের ভিজ্যুয়াল প্রেজেন্টেশনকে আরও সুন্দর এবং কার্যকরী করে তোলে।

common.content_added_by

Multiple Page Handling

138
138

Apache POI ব্যবহার করে Microsoft Word (DOCX) ডকুমেন্টে একাধিক পেজ হ্যান্ডেল করা যেতে পারে। সাধারণত, Word ডকুমেন্টে পেজ ব্রেক ব্যবহার করে নতুন পেজ তৈরি করা হয়। আপনি যখন একাধিক পেজের ডকুমেন্ট তৈরি করতে চান, তখন পেজ ব্রেক ব্যবহার করে সেগুলো আলাদা আলাদা পেজে বিভক্ত করতে পারেন।

এখানে আমরা দেখবো কিভাবে multiple pages তৈরি করা হয় এবং page breaks কিভাবে ইনসার্ট করা হয়।


১. পেজ ব্রেক যোগ করা

পেজ ব্রেক ব্যবহার করে আপনি একটি পেজের শেষে আরেকটি পেজ শুরু করতে পারবেন। এটি সাধারণত লম্বা ডকুমেন্ট বা অনেক তথ্যের জন্য প্রয়োজন হয়।

উদাহরণ: পেজ ব্রেক দিয়ে Multiple Pages তৈরি করা

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;

public class MultiplePagesExample {
    public static void main(String[] args) throws IOException {
        // একটি নতুন Word ডকুমেন্ট তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // প্রথম পেজের কন্টেন্ট
        XWPFParagraph paragraph1 = document.createParagraph();
        XWPFRun run1 = paragraph1.createRun();
        run1.setText("এটি প্রথম পেজের কন্টেন্ট।");

        // পেজ ব্রেক যোগ করা
        document.createParagraph().createRun().addBreak(); // পেজ ব্রেক

        // দ্বিতীয় পেজের কন্টেন্ট
        XWPFParagraph paragraph2 = document.createParagraph();
        XWPFRun run2 = paragraph2.createRun();
        run2.setText("এটি দ্বিতীয় পেজের কন্টেন্ট।");

        // পেজ ব্রেক যোগ করা (আরেকটি পেজের জন্য)
        document.createParagraph().createRun().addBreak(); // দ্বিতীয় পেজ ব্রেক

        // তৃতীয় পেজের কন্টেন্ট
        XWPFParagraph paragraph3 = document.createParagraph();
        XWPFRun run3 = paragraph3.createRun();
        run3.setText("এটি তৃতীয় পেজের কন্টেন্ট।");

        // Word ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("MultiplePagesExample.docx")) {
            document.write(out);
        }

        System.out.println("Multiple pages with page breaks created successfully!");
    }
}

কোড ব্যাখ্যা:

  • createRun().addBreak(): এই মেথডটি পেজ ব্রেক যোগ করার জন্য ব্যবহার করা হয়। একবার পেজ ব্রেক যোগ করলে, পরবর্তী কন্টেন্ট নতুন পেজে শুরু হবে।
  • XWPFParagraph: একটি নতুন প্যারাগ্রাফ তৈরি করার জন্য ব্যবহৃত হয়, যেখানে আমরা কন্টেন্ট (টেক্সট) যোগ করতে পারি।

২. পেজ ব্রেক এবং কাস্টম স্টাইল

আপনি কাস্টম স্টাইল ব্যবহার করে পেজ ব্রেকের পরে বিভিন্ন ধরনের ফরম্যাটিং বা স্টাইল অ্যাপ্লাই করতে পারেন। যেমন, পেজ ব্রেকের পর প্যারাগ্রাফের ফন্ট সাইজ বা স্টাইল পরিবর্তন করা।

উদাহরণ: পেজ ব্রেকের পর কাস্টম ফন্ট এবং সাইজ অ্যাপ্লাই করা

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFStyles;

import java.io.FileOutputStream;
import java.io.IOException;

public class StyledMultiplePagesExample {
    public static void main(String[] args) throws IOException {
        // একটি নতুন Word ডকুমেন্ট তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // প্রথম পেজের কন্টেন্ট
        XWPFParagraph paragraph1 = document.createParagraph();
        XWPFRun run1 = paragraph1.createRun();
        run1.setText("এটি প্রথম পেজের কন্টেন্ট।");

        // পেজ ব্রেক যোগ করা
        document.createParagraph().createRun().addBreak(); // পেজ ব্রেক

        // দ্বিতীয় পেজে কাস্টম ফন্ট এবং সাইজ সহ কন্টেন্ট
        XWPFParagraph paragraph2 = document.createParagraph();
        XWPFRun run2 = paragraph2.createRun();
        run2.setText("এটি দ্বিতীয় পেজের কন্টেন্ট, যা কাস্টম স্টাইলে প্রদর্শিত হচ্ছে।");
        run2.setFontSize(14); // ফন্ট সাইজ সেট করা
        run2.setBold(true);   // বোল্ড টেক্সট

        // তৃতীয় পেজের কন্টেন্ট
        document.createParagraph().createRun().addBreak(); // দ্বিতীয় পেজ ব্রেক

        XWPFParagraph paragraph3 = document.createParagraph();
        XWPFRun run3 = paragraph3.createRun();
        run3.setText("এটি তৃতীয় পেজের কন্টেন্ট, কাস্টম স্টাইল সহ।");
        run3.setItalic(true);  // ইটালিক টেক্সট

        // Word ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("StyledMultiplePages.docx")) {
            document.write(out);
        }

        System.out.println("Multiple pages with custom styles created successfully!");
    }
}

কোড ব্যাখ্যা:

  • run2.setFontSize(14): দ্বিতীয় পেজের জন্য ফন্ট সাইজ ১৪ নির্ধারণ করা।
  • run2.setBold(true): দ্বিতীয় পেজে বোল্ড স্টাইল প্রযোজ্য করা।
  • run3.setItalic(true): তৃতীয় পেজে ইটালিক স্টাইল প্রযোজ্য করা।

৩. পেজ সেটআপ কাস্টমাইজেশন

আপনি পেজ সাইজ, মার্জিন বা অরিয়েন্টেশন কাস্টমাইজও করতে পারেন। এতে করে পেজের আকার এবং ডকুমেন্টের বিন্যাসও পরিবর্তিত হয়।

উদাহরণ: কাস্টম পেজ সাইজ এবং মার্জিন

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;

public class PageSetupExample {
    public static void main(String[] args) throws IOException {
        // একটি নতুন Word ডকুমেন্ট তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // পেজ সেটআপ কাস্টমাইজ করা (এটা ডকুমেন্টের মূল পেজ সেটিংস পরিবর্তন করবে)
        document.getDocument().getBody().getSectPr().getPgMar().setTop(720); // টপ মার্জিন
        document.getDocument().getBody().getSectPr().getPgMar().setBottom(720); // বটম মার্জিন
        document.getDocument().getBody().getSectPr().getPgMar().setLeft(720); // লেফট মার্জিন
        document.getDocument().getBody().getSectPr().getPgMar().setRight(720); // রাইট মার্জিন

        // প্রথম পেজের কন্টেন্ট
        XWPFParagraph paragraph1 = document.createParagraph();
        XWPFRun run1 = paragraph1.createRun();
        run1.setText("এটি কাস্টম মার্জিন সহ প্রথম পেজ।");

        // পেজ ব্রেক যোগ করা
        document.createParagraph().createRun().addBreak(); // পেজ ব্রেক

        // দ্বিতীয় পেজের কন্টেন্ট
        XWPFParagraph paragraph2 = document.createParagraph();
        XWPFRun run2 = paragraph2.createRun();
        run2.setText("এটি দ্বিতীয় পেজ, যেখানে কাস্টম মার্জিন রয়েছে।");

        // Word ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("PageSetupExample.docx")) {
            document.write(out);
        }

        System.out.println("Document with custom page setup created successfully!");
    }
}

কোড ব্যাখ্যা:

  • setTop(720), setBottom(720), setLeft(720), setRight(720): এই মেথডগুলি পেজের মার্জিন কাস্টমাইজ করার জন্য ব্যবহৃত হয়। মানগুলি পয়েন্টে (points) দেওয়া হয়, যেখানে 1 ইঞ্চি = 72 পয়েন্ট।

সারাংশ

Apache POI ব্যবহার করে Microsoft Word (DOCX) ডকুমেন্টে multiple pages তৈরি করা সম্ভব এবং page breaks যোগ করে সেগুলিকে আলাদা আলাদা পেজে বিভক্ত করা যায়। এছাড়া, page setup যেমন margin এবং orientation কাস্টমাইজ করা, এবং পেজ ব্রেকের পরে বিভিন্ন ধরনের font styling যেমন bold, italic, font size কাস্টমাইজ করা যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion